home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / AddOns / Components / RealTime Graphics ActiveX / DATA.3 / Examples / Delphi / Meters / MetersU.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1997-10-17  |  4.6 KB  |  190 lines

  1. unit MetersU;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   OleCtrls, RTMETERX;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     RTMETERXCtrl1: TRTMETERXCtrl;
  12.     RTMETERXCtrl2: TRTMETERXCtrl;
  13.     RTMETERXCtrl3: TRTMETERXCtrl;
  14.     procedure FormCreate(Sender: TObject);
  15.     procedure RTMETERXCtrl1OnInternalTimer(Sender: TObject);
  16.     procedure RTMETERXCtrl2OnInternalTimer(Sender: TObject);
  17.     procedure RTMETERXCtrl3OnInternalTimer(Sender: TObject);
  18.   private
  19.   procedure BuildGraph1;
  20.   procedure BuildGraph2;
  21.   procedure BuildGraph3;
  22.     { Private declarations }
  23.   public
  24.     { Public declarations }
  25.   end;
  26.  
  27. var
  28.   Form1: TForm1;
  29.  
  30. implementation
  31. uses ctwxdef;
  32. {$R *.DFM}
  33. var
  34.   rData1: Array[0..1] of double;
  35.   rData2, rData3: double;
  36.  
  37. procedure TForm1.FormCreate(Sender: TObject);
  38. begin
  39.  BuildGraph1;
  40.  BuildGraph2;
  41.  BuildGraph3;
  42. end;
  43.  
  44.  
  45. procedure TForm1.BuildGraph1;
  46. begin
  47.  
  48.     RTMETERXCtrl1.MeterType  := RTMETER_NEEDLE;
  49.     RTMETERXCtrl1.MeterNumChannels  := 2;
  50.  
  51.     //CENTER AND DIAMETER
  52.     RTMETERXCtrl1.MeterCenterX  := 0.5;
  53.     RTMETERXCtrl1.MeterCenterY  := 0.4;
  54.     RTMETERXCtrl1.MeterDiameter := 0.5;
  55.  
  56.     //ARC
  57.     RTMETERXCtrl1.MeterStartArc := 135;
  58.     RTMETERXCtrl1.MeterStopArc := 45;
  59.  
  60.  
  61.     //NEEDLE
  62.     RTMETERXCtrl1.MeterNeedleStyle  := NEEDLE_SHORTF;
  63.  
  64.     //COLORS
  65.     RTMETERXCtrl1.PlotBackgroundColor  := RGB_BLACK;
  66.     RTMETERXCtrl1.WindowBackgroundColor  := RGB_BLACK;
  67.  
  68.     //SCALING
  69.     RTMETERXCtrl1.MeterScaleMin  := 2.0;
  70.     RTMETERXCtrl1.MeterScaleMax  := 5.0;
  71.  
  72.         // starting data values
  73.         rData1[0] := 3.5;
  74.         rData1[1] := 4.0;
  75.  
  76.     //ALARM ARCS
  77.     RTMETERXCtrl1.MeterLowAlarmStop  := 2.6;
  78.     RTMETERXCtrl1.MeterHighAlarmStart  := 4.8;
  79.  
  80.     //arc line
  81.     RTMETERXCtrl1.MeterArcEnable := FALSE;
  82.     RTMETERXCtrl1.MeterLineColor  := RGB_WHITE;
  83.  
  84.  
  85.     //tick attributes
  86.     RTMETERXCtrl1.MeterTickStep  := 0.5;
  87.     RTMETERXCtrl1.MeterMinorTicks  := 4;
  88.     RTMETERXCtrl1.MeterTickPosition  := POS_OUTSIDE;
  89.     RTMETERXCtrl1.MeterTickLabelsPrecision  := 1;
  90.     RTMETERXCtrl1.MeterTickLabelsPosition  := POS_OUTSIDE;
  91.     RTMETERXCtrl1.MeterTickLabelsColor := RGB_WHITE;
  92.  
  93.     //channel colors
  94.     RTMETERXCtrl1.MeterChannelColor[0] := RGB_WHITE;
  95.     RTMETERXCtrl1.MeterChannelColor[1] := RGB_LIGHTRED;
  96.  
  97.     //ALARMS
  98.     RTMETERXCtrl1.MeterNormalAlarmColor  := RGB_BLACK;
  99.     RTMETERXCtrl1.MeterAlarmArcThickness  := RTMETERXCtrl1.MeterAlarmArcThickness  / 4.0;
  100.  
  101.     //timer
  102.     RTMETERXCtrl1.EnableInternalTimer := TRUE;
  103.  
  104. end;
  105.  
  106. procedure TForm1.BuildGraph2;
  107. begin
  108.     RTMETERXCtrl2.MeterType  := RTMETER_ARC;
  109.  
  110.     //arcs
  111.     RTMETERXCtrl2.MeterStartArc := 270;
  112.     RTMETERXCtrl2.MeterStopArc := 90;
  113.  
  114.     //title
  115.     RTMETERXCtrl2.TitleString[ TITLE1] := 'Pie Meter';
  116.  
  117.     //timer
  118.     RTMETERXCtrl2.EnableInternalTimer := TRUE;
  119.  
  120.     //size and position
  121.     RTMETERXCtrl2.MeterDiameter := 0.6;
  122.     RTMETERXCtrl2.MeterCenterX  := 0.2;
  123.  
  124.     //tick marks
  125.     RTMETERXCtrl2.MeterTickPosition  := POS_OUTSIDE;
  126.  
  127.     //arc colors
  128.     RTMETERXCtrl2.MeterNormalAlarmColor  := RGB_WHITE;
  129.     RTMETERXCtrl2.MeterLowAlarmColor  := RGB_LIGHTBLUE;
  130.     RTMETERXCtrl2.MeterHighAlarmColor  := RGB_MAGENTA;
  131.  
  132.         rData2 := 5;
  133. end;
  134.  
  135. procedure TForm1.BuildGraph3;
  136. begin
  137.     RTMETERXCtrl3.MeterType  := RTMETER_PIE;
  138.     RTMETERXCtrl3.MeterStartArc := 0;
  139.     RTMETERXCtrl3.MeterStopArc := 345;
  140.  
  141.     RTMETERXCtrl3.MeterScaleMin  := 0.0;
  142.     RTMETERXCtrl3.MeterScaleMax  := 100.0;
  143.     RTMETERXCtrl3.MeterTickStep  := 25.0;
  144.  
  145.         rData3 := 50.0;
  146.  
  147.     //title
  148.     RTMETERXCtrl3.TitleString[ TITLE1] := 'Arc Meter';
  149.     RTMETERXCtrl3.TitleFontSize[TITLE1] := 10;
  150.     RTMETERXCtrl3.TitleColor[ TITLE1] := RGB_RED;
  151.     RTMETERXCtrl3.TitleFontStyle [TITLE1] :=  TEXT_BOLD OR TEXT_ITAL;
  152.  
  153.     //timer
  154.     RTMETERXCtrl3.EnableInternalTimer := TRUE;
  155.  
  156.     //diameter
  157.     RTMETERXCtrl3.MeterDiameter := + 0.6;
  158.  
  159.     //channel colors
  160.     RTMETERXCtrl3.MeterChannelColor[0] := RGB_WHITE;
  161.     RTMETERXCtrl3.MeterChannelColor[1] := RGB_CYAN;
  162.  
  163.     //arc limits
  164.     RTMETERXCtrl3.MeterLowAlarmStart  := 0.0;
  165.     RTMETERXCtrl3.MeterLowAlarmStop  := 10.0;
  166.     RTMETERXCtrl3.MeterHighAlarmStart  := 90.0;
  167.     RTMETERXCtrl3.MeterHighAlarmStop  := 100.0;
  168. end;
  169.  
  170. procedure TForm1.RTMETERXCtrl1OnInternalTimer(Sender: TObject);
  171. begin
  172.    rData1[0] := rData1[0] + 0.5 * (0.5 - random);
  173.    rData1[1] := rData1[1] + 0.5 * (0.5 - random);
  174.    RTMETERXCtrl1.UpdateDynData(rData1[0]);
  175. end;
  176.  
  177. procedure TForm1.RTMETERXCtrl2OnInternalTimer(Sender: TObject);
  178. begin
  179.    rData2 := rData2 + (0.5 - random);
  180.    RTMETERXCtrl2.UpdateDynData(rData2);
  181. end;
  182.  
  183. procedure TForm1.RTMETERXCtrl3OnInternalTimer(Sender: TObject);
  184. begin
  185.    rData3 := rData3 + 5 * (0.5 - random);
  186.    RTMETERXCtrl3.UpdateDynData(rData3);
  187. end;
  188.  
  189. end.
  190.